home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Ham Radio
/
Ham Radio CD-ROM (Emerald Software) (1995).ISO
/
ant
/
antenna2
/
taylor.bas
< prev
next >
Wrap
BASIC Source File
|
1986-08-10
|
4KB
|
138 lines
10 CLS:KEY OFF
20 REM TAYLOR LINE SOURCE [FROM DR. FERRARO]
30 DIM A(400),Y(400),F(400),YY(400),W(400),I(400)
40 PRINT" TAYLOR LINE SOURCE SYNTHESIS":PRINT:PRINT
50 DEF FN ARCOSH(X)=LOG(X+SQR(X*X-1))
60 DEF FN LOGTEN(X)=LOG(X)/LOG(10)
70 YMAX=-1000:YMIN=-40
80 PI=3.141592
90 INPUT "NUMBER OF EQUAL SIDELOBES ";NB
100 INPUT"S.L.L (dB) ";RR
110 INPUT"Aperture length ";L
120 R=10^(-RR/20): REM CHANGE FROM DB TO RATIO
130 A=(1/PI)*FN ARCOSH(R)
140 S=NB/SQR(A^2+(NB-.5)^2): REM S ==> SIGMA EQN 10-76
150 J=0
160 PRINT"n a(n) wn"
170 FOR N=-NB+1 TO NB-1
180 X=NB-1
190 GOSUB 420
200 C=P
210 C=C^2
220 X=NB-1+N
230 GOSUB 420
240 D=P
250 X=NB-1-N
260 GOSUB 420
270 E=P
280 F=C/(D*E)
290 P=1
300 FOR M=1 TO NB-1
310 XM=S*SQR(A^2+(M-.5)^2)
320 P=P*(1-(N/XM)^2)
330 NEXT M
340 SA=F*P
350 A(J)=SA
360 W(J)=N/L
370 'IF N<NB THEN W(J)=SGN((S/L)*SQR(A*A+(N-.5)*(N-.5)))
380 PRINT USING "## ##.###### ##.##";N;A(J);W(J)
390 J=J+1
400 NEXT N
410 GOTO 470
420 P=1: IF X=0 THEN RETURN
430 FOR I=0 TO X-1
440 P=P*(X-I)
450 NEXT I
460 RETURN
470 '
480 PRINT:PRINT"HALF POWER BEAMWIDTHS :-":PRINT
490 Q=FN ARCOSH(R):X=FN ARCOSH(R/1.414)
500 QQ=(S/(L*PI))*SQR(Q*Q-X*X)
510 HP=2*ATN(QQ/SQR(1-QQ*QQ)):HPD=HP*180/PI
520 HPWI=HP/S:HPWID=HPWI*180/PI
530 PRINT USING "HP wi = ##.###";HPWI;:PRINT USING" rad HP i= ##.##";HPWID;:PRINT" deg"
540 PRINT USING "HP w = ##.###";HP;: PRINT USING" rad HP = ##.##";HPD;:PRINT" deg"
550 '
560 LOCATE 23,1:GOSUB 1290
570 FOR THETA=0 TO 180
580 W=COS(THETA*PI/180)
590 F(THETA)=0
600 I=0
610 FOR N=-NB+1 TO NB-1
620 AA=(W-W(I))*L*PI
630 IF AA=0 THEN F(THETA)=F(THETA)+A(I):GOTO 660
640 F(THETA)=F(THETA)+A(I)*SIN(AA)/AA
650 I=I+1
660 NEXT N
670 Y(THETA)=ABS(F(THETA))
680 Y(THETA)=20*FN LOGTEN(Y(THETA))
690 IF Y(THETA)>YMAX THEN YMAX=Y(THETA)
700 NEXT THETA
710 YMIN=2*RR+YMAX
720 LOCATE 23,1:PRINT"TYPE RETURN TO CONTINUE... ";:INPUT W
730 GOSUB 970
740 GOSUB 1050
750 LOCATE 4,75:PRINT"dB"
760 LOCATE 23,1:GOSUB 1290
770 ' current distribution
780 YMIN=0:YMAX=0
790 MAGS=L/2
800 I=0
810 FOR S=-MAGS TO MAGS+MAGS/25 STEP MAGS/100
820 SUM=0
830 FOR N=1 TO NB-1
840 SUM=SUM+A(N+NB-1)*COS(2*PI*N*S/L)
850 NEXT N
860 I(I)=(1+2*SUM)/L
870 Y(I)=ABS(I(I))
880 IF Y(I)>YMAX THEN YMAX=Y(I)
890 IF Y(I)<YMIN THEN YMIN=Y(I)
900 I=I+1
910 NEXT S
920 LOCATE 23,1:PRINT" TYPE RETURN TO CONTINUE...";:INPUT W
930 GOSUB 970:GOSUB 1150
940 LOCATE 4,75:PRINT" "
950 GOSUB 1310
960 END
970 ' set up screen
980 SCREEN 2:CLS
990 FOR K=7 TO 67 STEP 10:LOCATE 20,K:PRINT"+":NEXT K
1000 FOR K=4 TO 20 STEP 4:LOCATE K,67:PRINT"-":NEXT K
1010 VIEW (52,28)-(530,154),,1
1020 LINE (239,0)-(239,154)
1030 RETURN
1040 '
1050 PSET (0,Y(0))
1060 WINDOW (0,YMIN)-(180,YMAX)
1070 FOR X=0 TO 180
1080 LINE -(X,Y(X))
1090 NEXT X
1100 LOCATE 3,20:PRINT"MAGNITUDE OF SYNTHESISED PATTERN"
1110 FOR K=4 TO 20 STEP 4:LOCATE K,68:PRINT USING "###.##";-(YMAX-YMIN)*(K-4)/16:NEXT K
1120 LOCATE 21,6:PRINT"180":LOCATE 21,37:PRINT"90":LOCATE 21,67:PRINT"0"
1130 RETURN
1140 '
1150 ' MAY 29, 1986
1160 ' RECTANGULAR PLOT OF DATA
1170 LOCATE 3,20:PRINT"MAGNITUDE OF CURRENT DISTRIBUTION"
1180 '
1190 WINDOW (1,YMIN)-(I,YMAX)
1200 '
1210 PSET (1,Y(1))
1220 FOR X=1 TO I
1230 LINE -(X,Y(X))
1240 NEXT X
1250 FOR K=4 TO 20 STEP 4:LOCATE K,68:PRINT USING "##.##";(20-K)*YMAX/16:NEXT K
1260 LOCATE 21,6:PRINT-L/2:LOCATE 21,37:PRINT"0 ":LOCATE 21,66:PRINT L/2
1270 RETURN
1280 LOCATE 24,1:PRINT"TYPE <RETURN> TO CONTINUE...";:INPUT W:SCREEN 0,0
1290 PRINT"I'm doing some calculation. Please wait..."
1300 RETURN
1310 T$="DO YOU WANT TO RUN THIS PROGRAM AGAIN (Y/N)? ":LC=23:GOSUB 1370
1320 AN$=INKEY$
1330 IF AN$="Y" OR AN$="y" THEN RUN
1340 IF AN$="N" OR AN$="n" THEN END
1350 GOTO 1310
1360 :
1370 LOCATE LC,(80-LEN(T$))/2+1:PRINT T$:RETURN 'SUBROUTINE TO CENTRE TEXT